package com.yc.system.service;

import java.awt.image.BufferedImage;

public interface CaptchaService {

    /**
     * 生成数学运算验证码
     *
     * @return 验证码ID
     */
    String createCaptcha();

    /**
     * 获取验证码图片
     *
     * @param captchaId 验证码ID
     * @return          图片数据
     */
    BufferedImage getCaptchaImage(String captchaId);

    /**
     * 验证验证码是否正确
     *
     * @param phone     用户手机号
     * @param captchaId 验证码ID
     * @param userInput 用户输入的结果
     * @return          是否正确
     */
    void validateCaptcha(String phone, String captchaId, String userInput);

    /**
     * 生成并发送验证码到用户邮箱
     *
     * @param email 用户邮箱
     * @return      验证码ID
     */
    String createAndSendEmailCaptcha(String email);

    /**
     * 验证验证码是否正确
     *
     * @param email     用户邮箱
     * @param captchaId 验证码ID
     * @param code      用户输入的结果
     * @return          是否正确
     **/
    void validateCaptchaForgetPassword(String email, String captchaId, String code);
}
